/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* ע�⣺
* �����Ϊwww.yixiang.co�������ƣ�δ�����򲻵�ʹ��
* �����ɻ��ȫ��Դ���루��ֹת���������ϴ������ơ�github�ȿ�Դƽ̨��
* һ�����ֵ��á��������Ϊ����׷���������Σ�����Ը�
*/
package co.yixiang.modules.user.service;

import co.yixiang.common.service.BaseService;
import co.yixiang.domain.PageResult;
import co.yixiang.modules.user.domain.Area;
import co.yixiang.modules.user.service.dto.AreaDto;
import co.yixiang.modules.user.service.dto.AreaQueryCriteria;
import org.springframework.data.domain.Pageable;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
* @author lsh
* @date 2021-04-19
*/
public interface AreaService extends BaseService<Area>{

    /**
     * 查询数据分页
     * @param criteria 条件
     * @param pageable 分页参数
     * @return Map<String,Object>
     */
    PageResult<AreaDto>  queryAll(AreaQueryCriteria criteria, Pageable pageable);

    /**
     * 查询数据分页
     * @param criteria 条件
     * @param pageable 分页参数
     * @return Map<String,Object>
     */
    PageResult<AreaDto>  query4operate(AreaQueryCriteria criteria, Pageable pageable);

    /**
     * 查询所有数据不分页
     * @param criteria 条件参数
     * @return List<AreaDto>
     */
    List<Area> queryAll(AreaQueryCriteria criteria);

    /**
     * 查询所有数据不分页
     * @param criteria 条件参数
     * @return List<AreaDto>
     */
    List<Area> queryAll4operate(AreaQueryCriteria criteria);


    /**
     * 导出数据
     * @param all 待导出的数据
     * @param response /
     * @throws IOException /
     */
    void download(List<AreaDto> all, HttpServletResponse response) throws IOException;

}
